
package futbol.tacticas.concursantes2007.AlfArgentin;
import futbol.General;
import futbol.tacticas.concursantes.Tactica;

import java.awt.*;
import java.util.Hashtable;
import java.util.Vector;
import futbol.tacticas.*;
import java.util.Enumeration;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Licencia GPL</p>
 *
 * <p>Company: </p>
 * @author Alfredo Garcia Woods
 * @version 1.0
 */
public class TacticaAlf implements Tactica{
    Vector<IJugador> vJugadores= new Vector();


    private int nValores[][]={
        {-160,0,6},  // Jugador 1[0]
        {-112,-70,4},  // Jugador 2[1]
        {-112,70,4},  // Jugador 3[2]
        {-100,0,4},  // Jugador 4[3]
        {-160,0,5},  // Jugador 5[4]
        {-55,0,4},  // Jugador 6[5]
        {-120,-120,6},  // Jugador 7[6]
        {-27,23,7},  // Jugador 8[7]
        {-38,92,7},  // Jugador 9[8]
        {107,-20,7},  // Jugador 10[9]
        {29,-48,7}  // Jugador 11[10]
    };

    /**
     * TacticaAlf
     */
    public TacticaAlf(){

        Defensa.tablaJugadoresMarcados=new Hashtable();  //Modificado por Jorge Rubira. Inicializo el Hashtable cada vez que se instancie una tctica nueva para que no se almacene informacin de diferentes partidos.
        
        //Arquero
        vJugadores.add(new Arquero(0,nValores[0][0],nValores[0][1]));

         //Defensa
        for (int i = 1; i <4; i++) {
            Defensa defensa = new Defensa(i,nValores[i][0],nValores[i][1]);
            vJugadores.add(defensa);
        }

        //Stoper
        Stoper stoper = new Stoper(4,nValores[4][0],nValores[4][1]);
        vJugadores.add(stoper);

        //Libero
        Libero libero = new Libero(5,nValores[5][0],nValores[5][1]);
        vJugadores.add(libero);

        //Medio
        for (int i = 6; i < 11; i++) {
            Medio medio = new Medio(i,nValores[i][0],nValores[i][1]);
            vJugadores.add(medio);
        }
    }


    /**
     * getColor1
     *
     * @return Color
     */
    public Color getColor1() {
        return Color.CYAN;
    }

    /**
     * getColor2
     *
     * @return Color
     */
    public Color getColor2() {
        return Color.WHITE;
    }

    /**
     * getColorNumero
     *
     * @return Color
     */
    public Color getColorNumero() {
        return Color.BLACK;
    }

    /**
     * getNombre
     *
     * @return String
     */
    public String getNombre() {
        return "Alf-Argentin";
    }

    /**
     * getXInicial
     *
     * @param n int
     * @return int
     */
    public int getXInicial(int n) {
        return nValores[n][0];
    }

    /**
     * getYInicial
     *
     * @param n int
     * @return int
     */
    public int getYInicial(int n) {
        return nValores[n][1];
    }

    /**
     * getFuerza
     *
     * @param n int
     * @return int
     */
    public int getFuerza(int n) {
        return nValores[n][2];
    }

    /**
     * getComandos
     *
     * @param sj SituacionJugadores
     * @return Vector
     */
    public Vector<Comando> getComandos(SituacionJugadores sj) {
        Vector<Comando> com=new Vector();

        Enumeration enumer=  vJugadores.elements();
        while(enumer.hasMoreElements()) {
            IJugador object =  (IJugador) enumer.nextElement();
            com.add(object.getComandoMovimiento(sj));
            com.add(object.getComandoTiro(sj));
        }


        return com;
    }



}

